// 响应状态码
const CODE = {
  SUCCESS: 200,           // 成功
  CREATED: 201,          // 创建成功
  ACCEPTED: 202,         // 已接受
  NO_CONTENT: 204,       // 无内容
  BAD_REQUEST: 400,      // 错误请求
  UNAUTHORIZED: 401,     // 未授权
  FORBIDDEN: 403,        // 禁止访问
  NOT_FOUND: 404,        // 未找到
  CONFLICT: 409,         // 冲突
  VALIDATE_ERROR: 422,   // 验证错误
  SERVER_ERROR: 500,     // 服务器错误
  SERVICE_BUSY: 503      // 服务不可用
};

// 错误消息
const ERROR_MSG = {
  [CODE.BAD_REQUEST]: '请求参数错误',
  [CODE.UNAUTHORIZED]: '未授权或登录已过期',
  [CODE.FORBIDDEN]: '无权访问',
  [CODE.NOT_FOUND]: '请求的资源不存在',
  [CODE.CONFLICT]: '资源冲突',
  [CODE.VALIDATE_ERROR]: '数据验证失败',
  [CODE.SERVER_ERROR]: '服务器内部错误',
  [CODE.SERVICE_BUSY]: '服务器繁忙'
};

// 统一响应格式
class Response {
  static success(data = null, msg = '操作成功') {
    return {
      code: CODE.SUCCESS,
      msg,
      data
    };
  }

  static error(code = CODE.SERVER_ERROR, msg = null, data = null) {
    return {
      code,
      msg: msg || ERROR_MSG[code] || '未知错误',
      data
    };
  }

  static list(data, total, page, pageSize) {
    return {
      code: CODE.SUCCESS,
      msg: '获取列表成功',
      data: {
        list: data,
        pagination: {
          total,
          page,
          pageSize
        }
      }
    };
  }
}

module.exports = {
  CODE,
  ERROR_MSG,
  Response
}; 